import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_base_widget/code2/second_page.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'first_page.dart';

//静态路由配置
void main() => runApp(MyApp3());

//定义根目录Widget
class MyApp3 extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      localizationsDelegates: const [
        //初始化默认的 Material 组件本地化
        GlobalMaterialLocalizations.delegate,
        //初始化默认的 通用 Widget 组件本地化
        GlobalWidgetsLocalizations.delegate,
        GlobalCupertinoLocalizations.delegate,
      ],
      //当前区域，如果为null则使用系统区域一般用于语言切换
      //传入两个参数，语言代码，国家代码
      //这里配制为中国
      locale: const Locale('zh', 'CN'),
      //定义当前应用程序所支持的语言环境
      supportedLocales: const [
        Locale('en', 'US'), // English 英文
        Locale('zh', 'CN'), // 中文
      ],
      routes: {
        //默认页面
        "/": (BuildContext context) => Exam209HomePage(),
      },
    );
  }
}

///代码清单2-13 Scaffold中 drawer 侧拉页面
///代码路径 lib/code2/code209_Scaffold_Dwaber.dart
class Exam209HomePage extends StatefulWidget {
  @override
  State<Exam209HomePage> createState() => _Exam209HomePageState();
}

class _Exam209HomePageState extends State<Exam209HomePage> {
  @override
  Widget build(BuildContext context) {
    //Scaffold 用来搭建页面的主体结构
    return Scaffold(
      //左侧侧拉页面
      drawer: buildDrawer(),
      //右侧侧拉页面
      endDrawer: buildDrawer(),
      //页面的头部
      appBar: AppBar(
        title: Text("标题"),
      ),
      //页面的主内容区
      //可以是单独的StatefulWidget 也可以是当前页面构建的如Text文本组件
      body: Center(
        child: Text("body内容区域"),
      ),
    );
  }

  //封装方法来构建 Widget 代码块 可以是单独的一个StatefulWidget页面
  Container buildDrawer() {
    //Container可看做是一个容器，用来包裹一些Widget
    return Container(
      //背景颜色
      color: Colors.white,
      width: 200,
      //Column可以让子Widgt在垂直方向线性排列
      child: Column(
        children: <Widget>[
          Container(
            color: Colors.blue,
            height: 200,
            child: Text("这是一个Text"),
          ),
          Container(
            color: Colors.red,
            height: 200,
            child: Text("这是一个Text2"),
          ),
        ],
      ),
    );
  }
  ///代码清单2-14 Scaffold中 drawer 侧拉页面
  ///代码路径 lib/code2/code209_Scaffold_Dwaber.dart
  Builder buildCustomBuilder() {
    return Builder(
      //使用Builder包裹后，Scaffold.of中使用Builder中回调的context
      //这个context的父级就是ScaffoldState了
      builder: (BuildContext context) {
        return IconButton(
          icon: Icon(Icons.access_alarm),
          //点击事件
          onPressed: () {
            // 打开左侧拉页面
            Scaffold.of(context).openDrawer();
            // 打开右侧拉页面
            Scaffold.of(context).openEndDrawer();
          },
        );
      },
    );
  }
}
